<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Calendario extends CI_Controller {
    public function __construct(){
        parent::__construct();
        if (!$this->session->userdata('logged_in')) {
             redirect('login');exit;
        }
        else{
            $this->session->set_userdata('componente','calendario');
            $this->load->model('Reserva_Model');
            $this->load->model('Pagamento_Model');
            $this->load->helper('date');
        }
    }
    public function index(){
        if(!$this->session->userdata('componente')){
            echo "Componente indefinido!";
        }
        else{
            $componente = $this->session->userdata('componente').'_view';  
            $this->load->view('layout/header_view',$componente);
            $this->load->view('menu_view');
            $this->load->view($componente,$componente);
            $this->load->view('layout/footer_view');
        }
    }
    public function reserva(){        
        if(!$this->uri->segment(4)){
            echo "Não existe data definida para a reserva.";
        }else{
            $slot = $this->uri->segment(3);
            if($slot !=1){
                $hoje = date("Y-m-d", strtotime("now"));
                if(date("Y-m-d", strtotime($this->uri->segment(4))) <= $hoje){
                    echo "Escolha um dia posterior ao atual.";
                }else{
                    if(!$row = $this->Reserva_Model->verificaDataReserva($this->uri->segment(4))){                        
                        $this->load->view('reserva_form');
                    } 
                    else{
                        if($row[0]->dtreserva != NULL){
                            echo "Existe uma reserva para este dia."; 
                        }else{
                            $agendamentos = $this->Reserva_Model->agendamentos($this->uri->segment(4));
                            if(!empty($agendamentos)){
                                exit("Existe um agendamento para este dia.");
                            }else{
                                $this->load->view('reserva_form');
                            }
                            //$this->load->view('agendamento_form',$agendamentos);
                            //--> REMOVIDO EM CONFIGURAÇÃO DO STATUS LIBERADO.
                           //$this->load->view('reserva_form');
                        }
                    } 
                }
            }
            else{
                $row = $this->Reserva_Model->reservaPorId($this->uri->segment(4));
                $reserva = array(
                    'title' =>$row->title,
                    'dtinicial'=>$row->dtinicial,
                    'dtfinal'=> date('d/m/Y',strtotime($row->dtfinal)),
                    'descricao'=>$row->descricao
                );
                $this->load->view('reserva_form', $reserva);
            }    
        }
    }
    public function mask($val, $mask) {
        $maskared = '';
        $k = 0;
        for ($i = 0; $i <= strlen($mask) - 1; $i++) {
            if ($mask[$i] == '#') {
                if (isset ($val[$k]))
                    $maskared .= $val[$k++];
            } else {
                if (isset ($mask[$i]))
                    $maskared .= $mask[$i];
            }
        }
        return $maskared;
    }
    public function clientePorReserva(){         
        $row = $this->Reserva_Model->clientePorReserva($this->uri->segment(4));
        $boleto = $this->Pagamento_Model->boletoContrato($row[0]->idreserva);
        if(!empty($row)){
            $tipo = $row[0]->tipo != 'f' ? 'Jurídica' : 'Física';
            $cpf = $this->mask($row[0]->nregistro,'###.###.###-##');
            $cnpj = $this->mask($row[0]->nregistro,'##.###.###/####-##');
            $nregistro = $row[0]->tipo != 'f' ? $cnpj : $cpf;
            $inform = array(
                'pgto'=>@$boleto[0]->baixa,
                'nome'=>$row[0]->nome,
                'tipo'=>$tipo,
                'nregistro'=>$nregistro,
                'telfixo'=>$this->mask($row[0]->telfixo,'(##) ####-####'),
                'telmovel'=>$this->mask($row[0]->telmovel,'(##) ####-####'),
                'endereco'=>$row[0]->endereco,
                'bairro'=>$row[0]->bairro,
                'cidade'=>$row[0]->cidade,
                'estado'=>$row[0]->estado,
                'cep'=>$this->mask($row[0]->cep, '##.###-###'),
                'title'=>$row[0]->title,
                'dtinicial'=>$row[0]->dtinicial,
                'dtfinal'=>$row[0]->dtfinal,
                'descricao'=>$row[0]->descricao_reserva,
                'status'=>$row[0]->descricao_status,
                'dtagendamento'=>$row[0]->dtagendamento,
                'dtreserva'=>$row[0]->dtreserva
            );
            $this->load->view('reserva_info',$inform);
        }else{
            echo"Agendado para administração.";
            exit;
        }
    }
    public function json(){
        foreach ($this->Reserva_Model->reservas() as $row){
            $idevento = $row->idreserva;
            $status = $row->status_idstatus;
            $start = $row->dtinicial;
            $end = $row->dtfinal;
            $token = $row->token;
            switch($status){
               case '1' : 
                   $cor    = 'green';
                   $text   = 'white';
                   $title  = 'Liberado';
               break;
               case '2' : 
                   $cor    = 'orange';
                   $text   = 'white';
                   $title  = 'Agendado';
               break;
               case '3' : 
                   $cor    = 'red';
                   $text   = 'white';
                   $title  = 'Reservado';
               break;
            }
            $resultado[] = array(
                'id'    =>$idevento,
                'title' =>$title,
                'start' =>$start,
                'end'   =>$end,
                'url'   =>"clientePorReserva/1/$token",
                'color' =>$cor,
                'textColor' =>$text,
            );
        }
        echo json_encode($resultado);
    }
}
/* End of file calendario.php */
/* Location: ./application/controllers/calendario.php */
